import { EntityModel } from '@midwayjs/orm';
import { BaseEntity } from 'midwayjs-cool-core';
import { Column, PrimaryGeneratedColumn } from 'typeorm';

/**
 * 用户基本信息
 * 注册：用户名 + 密码注册
 * 使用：需要完成信息绑定 => 邮箱、电话
 * 其他设置：昵称、头像、性别、地址、...
 * 信息记录：购物车、收藏夹、浏览历史、订单、...
 */
@EntityModel('customer')
export class CustomerEntity extends BaseEntity {
  @PrimaryGeneratedColumn('uuid', { comment: '用户唯一标识' })
  uuid: string;

  @Column({ comment: '用户名', unique: true })
  name: string;

  @Column({ comment: '密码' })
  pwd: string;

  @Column({ comment: '昵称', nullable: true })
  nickname: string;

  @Column({ comment: '头像', nullable: true })
  avatar: string;

  @Column({ comment: '电话', nullable: true, unique: true })
  phone: string;

  @Column({ comment: '邮箱', nullable: true, unique: true })
  email: string;

  @Column({
    type: 'enum',
    comment: '性别',
    enum: ['man', 'woman', 'unknown'],
    default: 'unknown',
  })
  sex: string;

  // 以下属性通过联表拼接
  // address: number[]; // 收货地址
  // cart: number[]; // 购物车
  // order: number[]; // 订单
  // favorite: number[]; // 收藏夹
  // history: number[]; // 浏览历史
}
